package cn.swust.util;

/*
 * 分页对象
 */
public class Pager {

	private int totalRows;//总行数
	private int pageSize  = 10;//每页显示的行数
	private int currentPage;//当前页号
	private int totalPages;//总页数
	private int startRow;//当前页在数据库中的起始行
	
	public Pager(){
		
	}
	/**
	 * 构造函数
	 * @param _totalRows
	 */
	public Pager(int _totalRows){
		totalRows = _totalRows;
		totalPages = totalRows/pageSize;
		int mod = totalRows%pageSize;
		if(mod >  0)
			totalPages++;
		currentPage = 1;
		startRow = 1;
	}
	//以下是属性的setter/getter方法

	public int getTotalRows() {
		return totalRows;
	}

	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getTotalPages() {
		return totalPages;
	}

	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}

	public int getStartRow() {
		return startRow;
	}

	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}
	/**
	 * 第一页
	 */
	public void first(){
		currentPage = 1;
		startRow = 0;
	}
	/**
	 * 前一页
	 */
	public void previous(){
		if(currentPage == 1)
			return;
		currentPage--;
		startRow = (currentPage - 1) * pageSize;
	}
	/**
	 * 下一页
	 */
	public void next(){
		if(currentPage < totalPages)
			currentPage++;
		startRow = (currentPage - 1) * pageSize;
	}
	/**
	 * 最后一页
	 */
	public void last(){
		currentPage = totalPages;
		startRow = (currentPage - 1) * pageSize;
	}
	/**
	 * 刷新
	 * @param _currentPage
	 */
	public void refresh(int _currentPage){
		currentPage = _currentPage;
		if(currentPage > totalPages)
			last();
	}
}
